'''
作业
每个操作封装成一个函数
创建英雄：当前游戏中，创建英雄角色，定义好对应英雄的血量及其攻击力。
查看英雄信息：查看当前游戏中所有的英雄信息。
修改英雄信息：修改英雄的血量。
删除英雄：英雄太弱，不需要，删除掉。
退出系统：结束程序
'''

hero_list = []


def create_hero():
    hero_name = input("请输入创建英雄角色名：")
    hero_blood = input("请输入英雄的血量：")
    hero_power = input("请输入英雄的攻击力：")
    hero_info = {"name": hero_name, "blood": hero_blood, "power": hero_power}
    hero_list.append(hero_info)
    print(f"恭喜您！创建英雄{hero_name}成功。血量为{hero_blood}，攻击力为{hero_power}。")
    return hero_list

def search_hero():
    name = input("请输入所要查询的英雄角色名：")
    for i in hero_list:
        if name == i["name"]:
            print(f"英雄{name}的信息为{i}。")
            return hero_list
    print("没有找到要查询的英雄。")


def modify_hero():
    hero_name = input("请输入修改英雄角色名：")
    for i in hero_list:
        if hero_name == i["name"]:
            hero_list.remove(i)
            hero_blood = input("请输入英雄的血量：")
            hero_power = input("请输入英雄的攻击力：")
            hero_info = {"name": hero_name, "blood": hero_blood, "power": hero_power}
            hero_list.append(hero_info)
            print(f"恭喜您！修改英雄{hero_name}成功。血量为{hero_blood}，攻击力为{hero_power}。")
            return hero_list
    print("没有找到要修改的英雄。")


def delete_hero():
    hero_name = input("请输入删除的英雄角色名：")
    for i in hero_list:
        if hero_name == i["name"]:
            print(f"英雄{hero_name}的信息为{i}")
            hero_list.remove(i)
            print(f"删除之后所有的英雄的数据信息为{hero_list}")
            return hero_list
    print("没有找到要删除的英雄。")
    return hero_list


# 控制台
print('''
1. **创建英雄**
2. **查看英雄信息**
3. **修改英雄信息**
4. **删除英雄**
5. **退出系统**
''')
# 如果为真，则一直执行代码块内容，直到给出中止信号；如果为假则不用执行代码块内容。
while True:
    res = input("请输入数字，选择需要完成的操作：")
    if res == "1":
        # **创建英雄**
        create_hero()
    elif res == "2":
        # **查看英雄信息**
        search_hero()
        print(f"查看当前游戏中所有的英雄信息{hero_list}")
    elif res == "3":
        # **修改英雄信息**
        modify_hero()
    elif res == "4":
        # **删除英雄**
        delete_hero()
    else:
        print("退出系统")
        break
